#pragma once

#if _DEBUG

#define Debug_Log(x) PDebug::Log(x)
#define Debug_LogF(f, ...) PDebug::Log(String::Format(f, __VA_ARGS__))
#define Debug_Error(x) PDebug::Error(x)
#define Debug_ErrorF(f, ...) PDebug::Error(String::Format(f, __VA_ARGS__))
#define Debug_Warning(x) PDebug::Warning(x)
#define Debug_WarningF(f, ...) PDebug::Warning(String::Format(f, __VA_ARGS__))

#define BEGIN_DEBUG_SECTION
#define END_DEBUG_SECTION

#else

#define Debug_Log(x)
#define Debug_LogF(f, ...)
#define Debug_Error(x)
#define Debug_ErrorF(f, ...)
#define Debug_Warning(x)
#define Debug_WarningF(f, ...)

#define BEGIN_DEBUG_SECTION # ## if false
#define END_DEBUG_SECTION # ## endif

#endif